/* 
 * File:   OperacionObtenerRepositorio.h
 * Author: maximiliano
 *
 * Created on 15 de junio de 2013, 10:41
 */

#ifndef OPERACIONOBTENERREPOSITORIO_H
#define	OPERACIONOBTENERREPOSITORIO_H
#include <stdint.h>
#include "client_FileServiceProxy.h"
#include "client_Operacion.h"
#include "common_Repositorio.h"
#include "common_TokenFactory.h"
#include "common_Codec.h"

using namespace TP::Archivos;
using namespace TP::Servicios;
using namespace TP::Comunicacion;

namespace TP { namespace Operaciones {

class OperacionObtenerRepositorio : public Operacion {
    
public:
    OperacionObtenerRepositorio(const uint32_t &pToken, Repositorio **pRepositorio, FileServiceProxy* pFileService);
    
    virtual ~OperacionObtenerRepositorio();
       
    virtual void ejecutar();

    virtual void procesarRespuesta (vector<string> &pRespuesta);   
    
private:
    
    void ObtenerRepositorioServidorManejadorRespuesta(vector<string> &pRespuesta);
    
    FileServiceProxy* _fileService;
    Repositorio **_repositorio;
    Codec _codec;
};
}}

#endif	/* OPERACIONOBTENERREPOSITORIO_H */

